package com.shop.util;

import com.shop.vo.DayStatis;

import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;

/**
 * @ClassName MyUtil
 * @Author xiao宋
 * @Date 16:13  2022/10/18
 * @Version 1.0
 * @Description 自用工具类
 */
public class MyUtil {


//      下面几个是工具类

    public static List<String> unionDayDate(List<String> dayData, List<String> userDayStatis) {
//          汇总两个   时间   数组
//          把两个list集合的元素都添加到set集合中， 自动去重
        Set<String> set = new HashSet<>();
        set.addAll(dayData);
        set.addAll(userDayStatis);
//        转 list
        List<String> list = new ArrayList<>();
        list.addAll(set);
//        排序并返回
        Collections.sort(list);
        return list;
    }

    public static List<Integer> fetchCntData(List<DayStatis> orderDayStstis, List<String> dayData) {
        //创建 返回值 list集合
        List<Integer> list = new ArrayList<>();
        //循环每一个日期
        for (String day : dayData) {
            //双重循环， 循环  dayStatis
            for (DayStatis ststi : orderDayStstis) {
                //              //如果日期匹配，则取出 订单数量
                if (day.equalsIgnoreCase(ststi.getDayStr())) {
                    list.add(ststi.getCnts());
                }
            }
        }
        return list;
    }

    public static List<BigDecimal> fetchAmtData(List<DayStatis> orderDayStstis, List<String> dayData) {
        //创建 返回值 list集合
        List<BigDecimal> list = new ArrayList<>();
        //循环每一个日期
        for (String dayDatum : dayData) {
            //双重循环， 循环  dayStatis
            for (DayStatis dayStati : orderDayStstis) {
//              //如果日期匹配，则取出 订单总额
                if (dayDatum.equalsIgnoreCase(dayStati.getDayStr())) {
                    list.add(dayStati.getAmts());
                }
            }
        }

        return list;
    }

    public static List<String> fetchDaySty(List<DayStatis> orderDayStstis) {
        List<String> list = orderDayStstis.stream().map(orderDayStstis1 -> {
            return orderDayStstis1.getDayStr();
        }).collect(Collectors.toList());

        //对日期集合排序
        Collections.sort(list);
        return list;
    }

}
